class World
{
public: 
	void GenerateResourceTree( int TotalAmount, int StartingID );//Generate resources across the world, - Only Call on Startup,
	void GenerateResourceIron( int TotalAmount, int StartingID );//Generate resources across the world, - Only Call on Startup,
	void PrepareSkyBox(void); //  Bleh
	void PrepareBaseTexture( int ImageNumber, int Across, int Down ); // Prepare a texture for the world. Tiles across and down.
	void TextureFillAll( int TextureTile ); // Texture the entire world with this texture 
    World( int WorldID, int Width, int Height, int XTiles, int YTiles, int MaxHeight ); // Set up our terrain
   ~World(); // Deconstructor : Not Used just here to shut compiler up!
    int GetWorldID(void);
	int GetWidth(void);
	int GetHeight(void);
	int GetXTiles(void);
	int GetYTiles(void);
	int GetMaxHeight(void);
	int GetXPlayerTile(int PlayerX );
	int GetZPlayerTile(int PlayerZ );
    void SetTerrainTypeForTile(int TileX , int TileZ,  int Type); // used to set terrain type. 
	void PrepareSkyBox(char* Filename, int FreeObjectID ); // unused.
	int IsResourceAtTile(int X, int Z);// return resource id of tile if any or 0 for null, 1 wood , 2 iron, 3 unused, 0, null
	int GetResourceAmountAtTile(int X, int Z); // return resource id of tile if any or 0 for null Use in conjunction with IsResourceAtTile(x,z);
	void DeleteResource(int X , int Z); // set the resourceID of the tile to 0. use in conjunction with dbDeleteObject() using the TileStruct's Tile.ObjectID;
	int ProcessTreeGrowth(); // Wurm style tree growth checks to see if a tree is close by for forest building rather than a totally random placement, also means unused areas and large forests in the wilderness are more likely to spawn a new tree as would be expected.

private:
	int Type;
	int TileZ;
	int PlayerX;
	int XPlayerTile;
	int ZPlayerTile;
	int PlayerZ;
	int WorldID;
	int Width;
	int Height;
	int XTiles;
	int YTiles;
	int MaxHeight;
};